home *** CD-ROM | disk | FTP | other *** search
/ Fifty: Elektronik / FIFTY Elektronik (PS_Computer_Vertrieb).iso / ps8 / fty1026 / lasidrc.hlp < prev    next >
Text File  |  1994-01-14  |  19KB  |  442 lines

  1. ≡≡
  2. Introduction
  3.  
  4.  Introduction
  5.  
  6.   The program LASIDRC.EXE is a design rule checking program that performs
  7.   various layout design rule checks by making 2-dimensional bitmaps of
  8.   drawing layers and then doing logical operations on the bitmaps. The
  9.   program has some major changes and improvements over earlier versions of
  10.   LASI design rule checkers:
  11.  
  12.   1. The program reads a Check File which contains parameters and operators
  13.      that perform one or more checks. You can write your own Check File,
  14.      and devise any type of design rule checks that you may want, within
  15.      the limits of the available operations.
  16.  
  17.   2. The program now can find "near miss errors" where one area misses
  18.      being to be connected to another area in a drawing by a single
  19.      smallest drawing unit.
  20.  
  21.   3. The program can be interrupted at any check within the processing of a
  22.      Check File, the state will be saved, and checking will continue in the
  23.      area where it was suspended if LASILL is started again.
  24.  
  25.   The program works on a cell drawing in the default directory (drawing
  26.   directory), and scans the cell in small areas, performing its sequence of
  27.   operations. The results may be displayed on a monitor, may be stored in a
  28.   disk file, or may be printed on a line printer. Automatic or manual
  29.   hardcopies of the display may be made using the same hardcopy programs
  30.   that LASI.EXE uses.
  31.  
  32. Running LASIDRC
  33.  
  34.  Running LASIDRC
  35.  
  36.   To run LASIDRC you first need to write a Check File as explained below.
  37.   This file contains small "programs" that tell LASIDRC what to do.
  38.  
  39.   Make the drawing directory the default directory and type "LASIDRC".
  40.   LASIDRC will come up in a setup display, providing it finds the drawing
  41.   files: FORM.DBD, CELLS4.DBD and CONSTS4.DBD. It will also allocate memory
  42.   for LASI objects and its bitmaps. If any of this fails, it will tell you
  43.   so and will return to DOS.
  44.  
  45.   When the Setup Display comes up, you can enter or change any parameters
  46.   by moving through the parameters using the up, down, left, right or ENTER
  47.   keys and then typing in any value. The values will be changed if any
  48.   characters are typed and the location is then moved. You can step around
  49.   and around until you have the parameters as you want them. The parameters
  50.   are as follows:
  51.  
  52.   1. The "Name of Cell to DRC" is the main cell you want to check. Note
  53.      that this also checks any lesser cells in the main cell.
  54.  
  55.   2. The "Name of Check File" is the name of the Check File that LASIDRC
  56.      will use. It will always have the extension ".CHK", which will
  57.      automatically be added to the name. This may include a path.
  58.  
  59.   3. The "Starting Check Number" is the test in the Check File where you
  60.      want the checking to start. This allows you to skip over some tests.
  61.  
  62.   4. The "Finishing Check Number is the last test you want to do. This
  63.      allows some trailing tests to be omitted.
  64.  
  65.   5. The Summary File switch. You may make a Summary File (always named
  66.      LASIDRC.SUM). This is an appended file, which will keep information on
  67.      all tests until it is erased.
  68.  
  69.   6. The Summary Print switch. You may also print the summary information
  70.      on a printer as the program runs. Alternately, you can just print the
  71.      Summary File when it is done.
  72.  
  73.   7. The Enable switches. There are two enables for the PAUSE and HCPY
  74.      operators. You can turn these operators on and off as you please
  75.      without editing the Check File.
  76.  
  77.   8. The Resolution and Distance Parameters. The resolution and distance in
  78.      the check file may be overridden if you want. These values stay in
  79.      place until new RESOLUTION= or DISTANCE= parameters are encountered in
  80.      the Check File in any of the following tests. Leaving these to blank
  81.      (press the Delete key) causes them to default to the minimum scale
  82.      unit and zero.
  83.  
  84.   9. The Starting Point. You may start checking areas anywhere by writing
  85.      the bottom-left coordinates in the setup. This allows you to go to an
  86.      certain area in a cell without doing all the previous areas. Leaving
  87.      these parameters blank causes them to be ignored at first and then be
  88.      set to the coordinates of the last area being checked.
  89.  
  90.   The setup is slightly "smart"; it checks and adjusts parameters to
  91.   conform to LASIDRC's checking rules. Units are automatically added to any
  92.   dimensions. You will also notice that where "y" or "n" is wanted,
  93.   anything but "y" will set "n".
  94.  
  95.  
  96.   To start checking, press F10. Once you start checking, the parameters are
  97.   saved in the LASIDRC.SET file and are returned when LASIDRC is run again.
  98.   When LASIDRC runs a short status is displayed which moves up and down the
  99.   screen as a screen saving feature.
  100.  
  101.   You may jump to the NEXT CHECK by pressing F10 again.
  102.  
  103.   You may abort checking by pressing ESC. You will go back to the Setup
  104.   Display. When this is done, the last area position and the check number
  105.   will be saved in the setup. If you start LASIDRC.EXE again this
  106.   information will be restored.
  107.  
  108.   Press ESC to go from the Setup to DOS.
  109.  
  110.   Note:  There may be a short delay if ESC is pressed, be patient.
  111.  
  112.  
  113.   Pressing F2 in Setup will read the contents of the Check File as it is
  114.   seen by LASIDRC. That is, the defaults for parameters will be listed and
  115.   any operators that have been disabled by making them into comments will
  116.   not be shown.
  117.  
  118.   Pressing F3 in Setup will shell to DOS. You can run your favorite editor
  119.   to make changes to the Check File, for example. Once in a while there
  120.   will not be enough contiguous memory available to run a program; in that
  121.   case you need to exit LASIDRC and go back to DOS. You may check the
  122.   available memory by pressing F4.
  123.  
  124.   If a Check File is read completely, the program will terminate normally
  125.   and go back to DOS. Certain setup parameters will be set to their default
  126.   values.
  127.  
  128. The Check File
  129.  
  130.  Check File Format
  131.  
  132.   A Check File consists of one or more test sequences or checks arranged in
  133.   blocks that contain parameters and operators. Each block starts with a
  134.   TITLE parameter and is ended with an OPERATORS parameter. The OPERATORS
  135.   parameter is always followed by a set of OPERATORS that are enclosed in
  136.   brace characters "{" and "}".
  137.  
  138.   Characters may be upper or lowercase. The format is as follows:
  139.  
  140.  
  141.   TITLE=aaaa<nl>            (40 char. max.)       []=optional
  142.   [RESOLUTION=nnnn<nl>]     (in physical units)   <nl>=newline (CRLF)
  143.   [DISTANCE=nnnn<nl>]       (in physical units)
  144.   [LOCATION=xxxx,yyyy<nl>]  (in physical units)
  145.   OPERATORS=<nl>
  146.   {<nl>
  147.     [OPERATOR<nl>]
  148.     .
  149.     .
  150.     .
  151.   }<nl>
  152.   TITLE=bbbb<nl>
  153.   etc.
  154.  
  155.  
  156.   Check Parameters:
  157.  
  158.   TITLE= is the name of a particular test, and must be present. If no new
  159.     title is read, the Check File is considered finished.
  160.  
  161.   RESOLUTION= is the physical size of each bit in a bitmap. This will be
  162.     snapped to multiples of the basic units used in the drawing. Making
  163.     this larger speeds up checking, but, details smaller than this number
  164.     may be lost. This defaults to the previous setting if not present.
  165.  
  166.   DISTANCE= is the distance by which bitmaps will be expanded when spacing
  167.     checks are being done. It also affect the position is the areas being
  168.     checked. This defaults to the previous setting.
  169.  
  170.   LOCATION= sets the point on a cell of where to start scanning. This is
  171.     the bottom-left corner of the area to be scanned. This does not default
  172.     to any previous values.
  173.  
  174.   OPERATORS= begins the sequence of operator mnemonics that do the actual
  175.     checking. The block of operators always starts with "{" and ends with
  176.     "}". Each operator is written on a new line (CR-LF) and may contain
  177.     arguments separated by a comma ",". Operators are read character by
  178.     character starting after "=". The right brace "}" terminates the
  179.     operations and the present check. There is space for a maximum of 50
  180.     operators in the sequence.
  181.  
  182.   The variables above are recognized by only their first two characters and
  183.   may be upper or lower case. For example, "op=" is equivalent to
  184.   "OPERATORS=".
  185.  
  186.   A semicolon may be added to an operator line, which has the effect of
  187.   making everything to the right a comment. You may "turn off" and operator
  188.   by putting a ";" as the first character in the line. This lets you leave
  189.   temporary operators in place in the file while you are working out a
  190.   test.
  191.  
  192.  Working Maps
  193.  
  194.   The program maintains several internal 640x640 bitmaps. Only two are
  195.   available to the user. These are the R (results) and S (secondary) maps.
  196.  
  197.   All tests are done by making and moving layer maps into the R and S
  198.   working maps, where the various operators can work on them.
  199.  
  200.   R and S maps are arranged in a 2-map "stack" as shown below:
  201.  
  202.  
  203.           PUSH layer map ────┐
  204.                              
  205.                            ┌─────────┐
  206.                            │ │  R    │<─┐<── R Operator
  207.             Map Stack      ├─│───────┤  │
  208.                            │   S    │──┴─── RS Operator
  209.                            └─────────┘
  210.  
  211.  
  212.   To do any operations on maps you first push a layer map onto the map
  213.   stack. When a map is pushed into R, the contents of R are first pushed
  214.   into S.
  215.  
  216.   Certain operators work with the R map and some work with both the R and S
  217.   maps. The results are always placed in the R map.
  218.  
  219.  Operators
  220.  
  221.   MAP,layer
  222.  
  223.     This creates a layer map file on the hard disk, which may be retrieved
  224.     by other operators. Layer is a number from 0 to 64.
  225.  
  226.     Layer 0 is a special layer, will store the R map for later use at any
  227.     stage of a checking sequence.
  228.  
  229.     You must ALWAYS use the MAP operator to generate a layer map if you are
  230.     going to use that layer map later.
  231.  
  232.  
  233.   PUSH,layer
  234.  
  235.     Retrieves a layer map from the hard disk and pushes the map onto the
  236.     map stack. The contents of the R map are moved to the S map. The
  237.     contents of the S map are lost. PUSH,0 retrieves and pushes a MAP,0
  238.     that may have been previously stored.
  239.  
  240.  
  241.   NOTR, ANDRS, ORRS, XORRS
  242.  
  243.     These are the logical operators that do just what they indicate. The
  244.     results are placed in the R map and the S map remains unchanged.
  245.  
  246.  
  247.   SETR,CLRR
  248.  
  249.     These are rarely used operators that set all bits of R to "1" or "0"
  250.     respectively.
  251.  
  252.  
  253.   DBLR
  254.  
  255.     This doubles the bits in X and Y directions so that single bits may be
  256.     displayed better. This is used automatically by EXPR (below).
  257.  
  258.  
  259.   EXPR[,offset]
  260.  
  261.     This is the single map expand operator. It performs an iterative
  262.     octagonal (see below) expansion on the R map. Each iteration expands
  263.     the pattern by ONE RESOLUTION UNIT. The results are placed in the R map
  264.     and the original R map is lost.
  265.  
  266.     The results represent a pattern produced by single "0s" in the map as
  267.     the "1s" merge with each expansion pass.
  268.  
  269.     The optional offset is a correction that may be used if found
  270.     necessary. The offset is the number of iterations (or resolution units)
  271.     to be subtracted from the expansion so that the distance parameter
  272.     gives the correct results.
  273.  
  274.  
  275.   EXPRS[,offset]
  276.  
  277.     This expands the R and S maps using an iterative octagonal expansion,
  278.     and places the results in the R map. Each iteration is one resolution
  279.     unit. The original R and S maps are lost. Since there are two separate
  280.     maps, the result is the intersection of the maps as they expand.
  281.  
  282.  
  283.   TESTR
  284.  
  285.     This is a conditional branching operator that tests if any bits are set
  286.     to "1" in the R map. If there are any "1s" the sequence of operators
  287.     continues. If there are no results, the rest of the operators are
  288.     skipped and the sequence of operators starts over again in the next
  289.     drawing area. This is used to determine is there is anything to print
  290.     or display.
  291.  
  292.  
  293.   DSPR,color index,sparse modulus
  294.  
  295.     This displays the R map as a rectangular pattern on the monitor screen.
  296.     The color index is the usual integerr (0 to 15) used by the PC video to
  297.     set a color: 0=black, 1= blue, 2=green, etc.
  298.  
  299.     The sparse modulus is a integer that allows only those pixels whose X
  300.     and Y position divided by the modulus that leaves a remainder of 0 to
  301.     be displayed. This "thins out" the filled patterns to give a better
  302.     display or print. For all pixels, the modulus is 1; for every other
  303.     pixel, the modulus is 2, etc.
  304.  
  305.  
  306.   DSP,map,color index,sparse modulus
  307.  
  308.     This is the same as DSPR except it displays a stored map. Use this to
  309.     display the layers as a background when displaying any results.
  310.  
  311.  
  312.   PAUSE
  313.  
  314.     This produces a pause after a display so that you can examine the
  315.     screen. Without it, LASIDRC would go on to the next area to be checked.
  316.     This is enabled by the Setup switch.
  317.  
  318.  
  319.   HCPY
  320.  
  321.     This calls the hardcopier automatically to produce a picture of the
  322.     screen after any results are displayed. If the Print Summary Setup
  323.     switch is set this does not work, since it would disrupt the summary
  324.     printing. This must also be enabled by the Setup switch.
  325.  
  326.  An Example
  327.  
  328.   If included in the LASI files, the demonstration layout (compressed in
  329.   DEMO.EXE) contains a sample Check File named DEMO.CHK. This has been
  330.   written to work with the demonstration, but can serve as an example of
  331.   how to write a file. Examining this file should make the preceding
  332.   information much clearer.
  333.  
  334. Octagonal Expansion
  335.  
  336.  Octagonal Expansion
  337.  
  338.   When an expansion is done, an iterative process is used to enlarge the
  339.   map patterns. With each pass the pattern is enlarged by one bit by
  340.   shifting it in each of the four orthogonal directions (+x,-x,+y,-y). It
  341.   is also shifted diagonally, on the average, .707 of the time. This
  342.   produces an octagonal pattern if the original pattern is a single point.
  343.  
  344.  
  345.                                             * * * * *
  346.     Octagonal single point expansion      * * * * * * *
  347.     after four passes                   * * * * * * * * *
  348.                                         * * * * * * * * *
  349.                                         * * * * X * * * *
  350.                                         * * * * * * * * *
  351.                                         * * * * * * * * *
  352.                                           * * * * * * *
  353.                                             * * * * *
  354.  
  355. Optimizing Parameters
  356.  
  357.  Optimizing Parameters
  358.  
  359.   Resolution can be made as small as 1 basic unit used in a drawing.
  360.  
  361.   Making the Resolution larger allows checking to be done much faster
  362.   because larger pieces of a drawing can be checked at a time and less
  363.   iterations are necessary when checking. The time required to check is
  364.   roughly in inverse proportion to the 3rd power of the Resolution. That
  365.   is, if you halve your Resolution it will run about 8 times faster. Unless
  366.   you have a very fast computer, the highest Resolution is best used on
  367.   small cells or for checks that involve small dimensions. For example,
  368.   contact coverage or checking for small gaps in metal runs might run at
  369.   the smallest Resolution.
  370.  
  371.   Making Resolution too large can cause errors to be missed because details
  372.   cannot be resolved smaller than that size and roundoffs may occur.
  373.   However, scanning for gross errors can quickly be done using a larger
  374.   Resolution.
  375.  
  376.   The Distance parameter will affect the test time, since each iteration of
  377.   an expansion takes about the same amount of time.
  378.  
  379.   Distance will also affect the size and position of the areas being
  380.   checked. Distance can be set to 0, but a small correction, depending on
  381.   the Resolution, will be made so that checked areas will overlap slightly.
  382.  
  383. Missed and False Errors
  384.  
  385.  Missed and False Errors
  386.  
  387.   When checking distances, if programmed correctly, LASIDRC should always
  388.   find an flag distances <= (Distance - Resolution). For example, a 10 um
  389.   Distance and a Resolution of .5um should find anything less than or equal
  390.   to 9.5um. Note that as the Resolution approaches zero, this distance
  391.   approaches the Distance.
  392.  
  393.   This does not mean that all distances will be accepted if they are
  394.   greater than (Distance - Resolution). For 45 deg. diagonal distances,
  395.   there can be an uncertainty that is less than +/- half the Resolution,
  396.   due partly to the way that LASIDRC works and due partly to numerical
  397.   roundoff problems. For angles that are in a range centered around odd
  398.   multiples of 22.5 deg. ( 22.5, 67.5, etc.) there is an exaggeration of
  399.   the expansion distance. This may flag oddly shaped objects. Since LASIDRC
  400.   expands areas using an octogonal pattern, these exaggerations correspond
  401.   to the octogon vertex peaks or about an 8 percent exaggeration at most.
  402.  
  403.   Since LASIDRC looks for single bits when doing a single layer expansion,
  404.   once in a while on odd shapes, the map can produce single bit extensions
  405.   or notches. LASIDRC will find these and will flag them, even though they
  406.   are an artifact. You should examine these and see if there really is
  407.   anything wrong. In fact, the way that LASIDRC works often picks out
  408.   patterns that are not good layout practice.
  409.  
  410.   LASIDRC works in such a way that sharp corners tend to be rounded, just
  411.   as actual photomasking and etching might do. Keep this in mind when
  412.   setting the Distance parameter. For example, the distance between two
  413.   adjacent corners will be seen by LASIDRC as a little more than the actual
  414.   tip to tip distance.
  415.  
  416.   The method by which LASIDRC works is sensitive to gross errors which are
  417.   well beyond the actual flagging threshold. It is virtually impossible for
  418.   LASIDRC to miss these.
  419.  
  420.   LASIDRC will find "near miss" errors in which there is a gap between
  421.   filled areas that is greater than or equal to the value set as the
  422.   Resolution. Set the Resolution to the smallest physical unit (1 basic
  423.   drawing unit), and set the Distance to some value large enough to find
  424.   all small gaps, but small enough to let LASIDRC run quickly. On strange
  425.   shapes, LASIDRC will sometimes flag small notches. Ignore these if they
  426.   cause no trouble.
  427.  
  428. Disclaimer
  429.  
  430.  Disclaimer
  431.  
  432.   The LASIDRC.EXE program is furnished on an "as is" basis. LASIDRC will
  433.   make a "best effort" to call to attention any possible layout errors.
  434.   Experience should confirm that it doesn't miss much. However, the author
  435.   or anyone distributing the program cannot assume responsibility for how
  436.   the program is used, how it is programmed or for the results of its use.
  437.   The program cannot be absolutely guaranteed to find all instances in a
  438.   layout that may result in incorrect function of an integrated circuit or
  439.   other device. LASIDRC is to be considered as a valuable aid to actual
  440.   visual inspection and the users own knowledge.
  441.  
  442.